﻿using System;
using UnityEngine;

namespace RenderHeads.Media.AVProVideo
{
	// Token: 0x02000035 RID: 53
	public interface IMediaControl
	{
		// Token: 0x06000185 RID: 389
		bool OpenVideoFromFile(string path, long offset, string httpHeaderJson);

		// Token: 0x06000186 RID: 390
		bool OpenVideoFromBuffer(byte[] buffer);

		// Token: 0x06000187 RID: 391
		void CloseVideo();

		// Token: 0x06000188 RID: 392
		void SetLooping(bool bLooping);

		// Token: 0x06000189 RID: 393
		bool IsLooping();

		// Token: 0x0600018A RID: 394
		bool HasMetaData();

		// Token: 0x0600018B RID: 395
		bool CanPlay();

		// Token: 0x0600018C RID: 396
		bool IsPlaying();

		// Token: 0x0600018D RID: 397
		bool IsSeeking();

		// Token: 0x0600018E RID: 398
		bool IsPaused();

		// Token: 0x0600018F RID: 399
		bool IsFinished();

		// Token: 0x06000190 RID: 400
		bool IsBuffering();

		// Token: 0x06000191 RID: 401
		void Play();

		// Token: 0x06000192 RID: 402
		void Pause();

		// Token: 0x06000193 RID: 403
		void Stop();

		// Token: 0x06000194 RID: 404
		void Rewind();

		// Token: 0x06000195 RID: 405
		void Seek(float timeMs);

		// Token: 0x06000196 RID: 406
		void SeekFast(float timeMs);

		// Token: 0x06000197 RID: 407
		float GetCurrentTimeMs();

		// Token: 0x06000198 RID: 408
		float GetPlaybackRate();

		// Token: 0x06000199 RID: 409
		void SetPlaybackRate(float rate);

		// Token: 0x0600019A RID: 410
		void MuteAudio(bool bMute);

		// Token: 0x0600019B RID: 411
		bool IsMuted();

		// Token: 0x0600019C RID: 412
		void SetVolume(float volume);

		// Token: 0x0600019D RID: 413
		void SetBalance(float balance);

		// Token: 0x0600019E RID: 414
		float GetVolume();

		// Token: 0x0600019F RID: 415
		float GetBalance();

		// Token: 0x060001A0 RID: 416
		int GetCurrentAudioTrack();

		// Token: 0x060001A1 RID: 417
		void SetAudioTrack(int index);

		// Token: 0x060001A2 RID: 418
		int GetCurrentVideoTrack();

		// Token: 0x060001A3 RID: 419
		void SetVideoTrack(int index);

		// Token: 0x060001A4 RID: 420
		float GetBufferingProgress();

		// Token: 0x060001A5 RID: 421
		int GetBufferedTimeRangeCount();

		// Token: 0x060001A6 RID: 422
		bool GetBufferedTimeRange(int index, ref float startTimeMs, ref float endTimeMs);

		// Token: 0x060001A7 RID: 423
		ErrorCode GetLastError();

		// Token: 0x060001A8 RID: 424
		void SetTextureProperties(FilterMode filterMode = FilterMode.Bilinear, TextureWrapMode wrapMode = TextureWrapMode.Clamp, int anisoLevel = 1);

		// Token: 0x060001A9 RID: 425
		void GrabAudio(float[] buffer, int floatCount, int channelCount);

		// Token: 0x060001AA RID: 426
		int GetNumAudioChannels();
	}
}
